#include <iostream>
using namespace std;
int month[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};  // 默认 2 月为 28 天
int y, m, d;

void cal() {
    month[2] = 28 + (y % 4 == 0 && y % 100 != 0 || y % 400 == 0);
}

void next_day() {
    d++;
    cal();
    if (d > month[m]) {  // 若超过了当前月份的天数，那么就需要进位
        m++;
        d = 1;
        if (m > 12) {  // 月份 +1 的情况下同样要判断需要进位
            y++;
            m = 1;
        }
    }
}

void last_day() {
    d--;
    cal();
    if (d == 0) {  // 天数需要退位的情况
        m--;
        d = month[m];
        if (m == 0) {  // 判断月份也需要退位的情况
            y--;
            m = 12;
            d = month[m];  // 注意当月份也退位后，天数需要重新更新
        }
    }
}

/**
 * 昨天和明天
 * 
 */
int main() {
    cin >> y >> m >> d;
    last_day();
    cout << y << " " << m << " " << d << endl;
    next_day();
    next_day();
    cout << y << " " << m << " " << d << endl;
    return 0;
}